Computers are known to include a central processing unit, system memory, video graphics processing circuitry, audio processing circuitry, and peripheral ports. The peripheral ports allow the central processing unit to interface with peripheral devices such as other computers, modems, printers, keyboards, mouses, etc. The evolution of computer technology has seen personal computers dramatically improve in performance, memory capacity, video quality and audio quality. The advances in video quality are a direct result of video graphics circuitry evolution. Such video graphics circuitry evolution has made it economical to include advance video graphic features, such as 3-D imagery, etc. on personal computers.
Such video graphic circuitry includes a mix of analog circuitry and digital circuitry. Typically, in designing a video graphics circuit, the analog circuitry is isolated from the digital circuitry, as much as possible, to shield the analog signals, which are susceptible to noise, from the digital circuitry, which generates noise. Typically, however, board layout isolation, is insufficient to provide the signal to noise ratio desired for high performance video graphics circuitry. One technique to improve the signal to noise ratio provides shielding between the analog and digital circuits such that the shielding shields the noise generated by the digital circuitry to a ground reference. Another noise reduction technique is to use a multilayer printed circuit board where the analog circuitry is on a separate plane, or layer, than the digital circuitry. While shielding and multi-layer boards work well to suppress noise, they are quite costly to implement.
A more cost-effective noise reduction technique is to include an adaptive filter, which filters noise based on the equation Y.sub.out =K.times.X.sub.c +(1-K).mu., where K=Sigma.sup.2 /(Sigma.sup.2.sub.i +Sigma.sup.2.sub.n). In this equation, .mu. represents the average pixel value (color, texture, alpha blending, etc.) of the pixels covered by the filter, Sigma.sup.2 represents the variance within the display screen, Sigma.sup.2 /Sigma.sup.2.sub.i represents the local variance, and Sigma.sup.2.sub.n represents the noise floor. Further, .mu.=(1/L.times.W).SIGMA..sub.i.SIGMA..sub.j X.sub.ij, where W represents the width (with respect to the x-direction) of the filter and L represents the length (with respect to the y-direction) of the filter. For example, a 3.times.3 filter encompassing 9 pixels where L equals 3 and W equals 3 wherein X.sub.c represents the center pixel of the filter.
When this filter is applied to an input video signal, it attenuates noise based on the adaptive filtering equation. In general, when there is significant noise, the K term approaches 1, thus the filter filters X.sub.c based primarily on the pixel value of X.sub.c (i.e., the K*X.sub.c term dominates). When there is little noise, the K term approaches 0, thus the filter filters Xc based on the average pixel value of the pixels covered by the filter (i.e., the (1-K) .mu. term dominates). When the noise level is in between, both terms contribute to the filtering of the pixel providing additional filtering when it is not needed. As a result, images appear smoother than intended because definition of the edges of the images has been diluted. As such, the desired video quality is less than optimal.
Therefore, a need exists for a method and apparatus that attenuates noise in video graphic circuitry without the cost of shielding or multi-layer boards and without the smoothing effect of the above-described filtering technique.